package jdbc.demo.dao;

import jdbc.demo.domain.PenaltiesTypesCopy1;

import java.util.List;

/**
 * 描述:
 *
 * @author Zhanggq
 * @date 2019/9/12 10:38
 */
public interface PenaltiesTypesCopy1Dao {


    /**
     * 新增
     * <pre>
     *     第1版本，写死SQL
     * </pre>
     *
     * @return
     */
    void save_v1();


    /**
     * 新增
     * <pre>
     *     第2版本,需要在每一个daoimpl重复编写driverClassName，url,username,password四要素
     * </pre>
     *
     * @return
     */
    void save_v2();

    /**
     * 新增
     * <pre>
     *     第3版本,将四要素写进一个JdbcTool工具类，加载驱动写在静态代码块
     * </pre>
     *
     * @return
     */
    void save_v3();

    /**
     * 新增
     * <pre>
     *     第4版本,将四要素写进一个db.properties配置文件
     * </pre>
     *
     * @return
     */
    void save_v4();

    /**
     * 新增，返回主键
     * <pre>
     *     第5版本，druid版本+事务
     * </pre>
     *
     * @param penaltiesTypesCopy1
     * @return
     */
    Long save_v5(PenaltiesTypesCopy1 penaltiesTypesCopy1);

    /**
     * 删除
     *
     * @param id
     */
    void delete(Long id);

    /**
     * 删除
     * <pre>
     *     第一版本，写死SQL
     * </pre>
     */
    void delete_v1();

    /**
     * 修改
     *
     * @param id
     * @param penaltiesTypesCopy1
     */
    void update(Long id, PenaltiesTypesCopy1 penaltiesTypesCopy1);

    /**
     * 修改
     * <pre>
     *     第一版本，写死SQL
     * </pre>
     *
     * @param id
     * @param penaltiesTypesCopy1
     */
    void update_v1(Long id, PenaltiesTypesCopy1 penaltiesTypesCopy1);

    /**
     * 查询单条记录
     *
     * @param id
     * @return
     */
    PenaltiesTypesCopy1 get(Long id);

    /**
     * 查询单条记录
     * <pre>
     *     第一版本，写死SQL
     * </pre>
     *
     * @return
     */
    PenaltiesTypesCopy1 get_v1();

    /**
     * 查询多条记录
     *
     * @return
     */
    List<PenaltiesTypesCopy1> list();

    /**
     * 查询多条记录
     * <pre>
     *     第一版本，写死SQL
     * </pre>
     *
     * @return
     */
    List<PenaltiesTypesCopy1> list_v1();
}
